//
//  QiniuPutPolicy.h
//


#import <Foundation/Foundation.h>

// NOTE: Generally speaking, this class is not required for client development.
// The token string should be retrieved from your biz server.

// Refer to the spec: http://docs.qiniu.com/api/put.html#uploadToken

@interface QiniuPutPolicy : NSObject

// 用于指定文件所上传的目标资源空间（Bucket）和资源名（Key）。格式为：<bucket name>[:<key>]。若只指定Bucket名，表示文件上传至该Bucket。若同时指定了Bucket和Key（<bucket name>:<key>），表示上传文件限制在指定的Key上。两种形式的差别在于，前者是“新增”操作：如果所上传文件的Key在Bucket中已存在，上传操作将失败。而后者则是“新增或覆盖”操作：如果Key在Bucket中已经存在，将会被覆盖；如不存在，则将文件新增至Bucket中。注意：资源名必须采用utf8编码，非utf8编码的资源名在访问七牛云存储将会反馈错误。
@property (retain,nonatomic) NSString *scope;

@property int expires;

// 给上传的文件添加唯一属主标识，特殊场景下非常有用，比如根据App-Client标识给图片或视频打水印
@property (retain, nonatomic) NSString *endUser;

// 设置用于浏览器端文件上传成功后，浏览器执行301跳转的URL，一般为HTML Form上传时使用。文件上传成功后会跳转到returnUrl?query_string, query_string会包含 returnBody 内容。
@property (retain, nonatomic) NSString *returnUrl;

// 文件上传成功后，自定义从七牛云存储最终返回給终端 App-Client 的数据。支持 魔法变量和自定义变量。
@property (retain, nonatomic) NSString *returnBody;

// 文件上传成功后，七牛云存储向 App-Server 发送POST请求的URL，必须是公网上可以正常进行POST请求并能响应 HTTP Status 200 OK 的有效 URL
@property (retain, nonatomic) NSString *callbackUrl;

// 文件上传成功后，七牛云存储向 App-Server 发送POST请求的数据。支持 魔法变量 和 自定义变量。
@property (retain, nonatomic) NSString *callbackBody;

//
//@property (retain, nonatomic) NSString *asyncOps;


// 音/视频文件上传成功后异步地执行的预转码持久化指令。每个预转指令是一个API规格字符串，多个预转指令可以使用分号;隔开。具体指令请参考fop
@property (retain, nonatomic)NSString *persistentOps;

// 七牛云存储向 App-Server 发送转码持久化结果的URL，必须是公网上可以正常进行POST请求并能响应 HTTP Status 200 OK 的有效 URL。
@property (retain, nonatomic)NSString *persistentNotifyUrl;


// Make uptoken string.
- (NSString *)makeToken:(NSString *)accessKey secretKey:(NSString *)secretKey;

@end
